// 关于用户的模块, 每个模块都有自己的state, mutations, actions, getters
import { setToken, getToken, removeToken } from '@/utils/storage'
// https://www.npmjs.com/package/vuex-persistedstate 这个包可以实现vuex本地存储
const state = {
  // 存储的token信息对象
  // tokenInfo: JSON.parse(localStorage.getItem('tokenInfo')) || {}
  tokenInfo: getToken()
}
const mutations = {
  // 设置用户token的
  setTokenInfo(state, obj) {
    state.tokenInfo = obj
    // 本地存储token信息
    // localStorage.setItem('tokenInfo', JSON.stringify(obj))
    setToken(obj)
  },
  // 清除token信息的mutation
  removeToken(state) {
    // 将vuex中的tokenInfo清除
    state.tokenInfo = {}
    // 清除本地存储的token
    removeToken()
  }
}
const actions = {}
const getters = {}
export default {
  state,
  mutations,
  actions,
  getters,
  // 开启命名空间
  namespaced: true
}
